import com.hazelcast.mapreduce.Collator; import java.util.Map; public class AverageCollator implements Collator<Map.Entry<Integer, NumberReductionResult>, Double> { @Override public Double collate(Iterable<Map.Entry<Integer, NumberReductionResult>> values) { double sumOfAllNumbersAfterOp = 0; double countOfAllNumbers = 0; for (Map.Entry<Integer, NumberReductionResult> entry : values) { Integer count = entry.getValue().getCount(); Integer opResultOnNumber = entry.getValue().getOpResult(); sumOfAllNumbersAfterOp += opResultOnNumber * count; countOfAllNumbers += count; } return sumOfAllNumbersAfterOp / countOfAllNumbers; } }